本文共 2152 字,大约阅读时间需要 7 分钟。
控制层
修改 pinyougou-seckill-web 的 SeckillGoodsController.java /** * 当前秒杀的商品 * @return */ @RequestMapping("/findList") public ListfindList(){ return seckillGoodsService.findList(); }前端代码实现 2.3.1 服务层 在 pinyougou-seckill-web 创建 seckillGoodsService.js //服务层app.service('seckillGoodsService',function($http){ //读取列表数据绑定到表单中 this.findList=function(){ return $http.get('seckillGoods/findList.do'); } });控制层 在 pinyougou-seckill-web 创建 seckillGoodsController.js //控制层 app.controller('seckillGoodsController' ,function($scope,seckillGoodsService){ //读取列表数据绑定到表单中 $scope.findList=function(){ seckillGoodsService.findList().success( function(response){ $scope.list=response; } ); } });页面 修改 seckill-index.html,引入 js 指令 循环列表的实现 缓存处理 修改 pinyougou-seckill-service 的 SeckillGoodsServiceImpl.java @Autowired private RedisTemplate redisTemplate; @Override public List { {pojo.title}}¥{ {pojo.costPrice}} ¥{ {pojo.price}}立即抢购已售{ { ((pojo.num-pojo.stockCount)/pojo.num*100).toFixed(0) }}%剩余 { {pojo.stockCount}}件findList() { //获取秒杀商品列表 List seckillGoodsList =redisTemplate.boundHashOps("seckillGoods").values(); if(seckillGoodsList==null || seckillGoodsList.size()==0){ TbSeckillGoodsExample example=new TbSeckillGoodsExample(); Criteria criteria = example.createCriteria(); criteria.andStatusEqualTo("1");//审核通过 criteria.andStockCountGreaterThan(0);//剩余库存大于 0 criteria.andStartTimeLessThanOrEqualTo(new Date());//开始时间小于等于当前时间 criteria.andEndTimeGreaterThan(new Date());//结束时间大于当前时间 seckillGoodsList= seckillGoodsMapper.selectByExample(example); //将商品列表装入缓存 System.out.println("将秒杀商品列表装入缓存"); for(TbSeckillGoods seckillGoods:seckillGoodsList){ redisTemplate.boundHashOps("seckillGoods").put(seckillGoods.getId(),seckillGoods); } } return seckillGoodsList; }
转载于:https://blog.51cto.com/13517854/2311812